IF exists(SELECT * FROM dbo.sysobjects WHERE name='fr_maakXSLOverzicht' AND xtype='P') 
BEGIN
	DROP PROCEDURE fr_maakXSLOverzicht
END
GO

CREATE   procedure fr_maakXSLOverzicht(
@aard char(1),@periode char(2),@schooljaar char(4),
@overzichtsNr int,@overzichtsNaam varchar(50),@formaat varchar(50),@xslNaam varchar(50)
)
as
--De veranderlijken, die de waarden uit de tabel zullen opslaan en de bijhorende cursor.
declare @tekstregel varchar(1000)
declare @tekstNr int
declare @volgNr int
declare @@ptrXSL varbinary(16)
declare @nLine char(2)

set @nLine= char(13)+char(10)

--De tabel wordt ingelezen
declare deCursor cursor local for 
select distinct -1 as volgNr,-1 as tekstNr,'<?xml version="1.0"  encoding="ISO-8859-1" ?>'
		+ '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">'
from fr_XSLcompositie
  where aard = @aard 
	and periode = @periode
union
select 1 ,x.tekstNr,x.tekstregel
from fr_XSLSnippets as x
	where aard=@aard and
	  periode=@periode and
	     XSLNaam=@formaat + '/' + @xslNaam
union 
select distinct 2,999999,'</xsl:stylesheet>'
order by volgNr,tekstNr
for read only

open deCursor
fetch next from deCursor into @volgNr,@tekstNr,@tekstregel

if (@@fetch_status=0)
begin 
  insert into fr_XSLoverzicht(aard,periode,jaar,overzichtsnaam,overzichtsNr,formaat,XSLTekst)
  values(@aard,@periode,@schooljaar,@overzichtsnaam,@overzichtsNr,@formaat,'')
  select @@ptrXSL = textptr(XSLTekst) from fr_XSLoverzicht
	where overzichtsnaam = @overzichtsnaam 
		and overzichtsNr = @overzichtsNr
   		    and formaat = @formaat
  			and aard = @aard 
			    and periode = @periode 
				and jaar=@schooljaar
end

while (@@fetch_status=0)
begin
  updatetext fr_XSLoverzicht.XSLtekst @@ptrXSL null 0 @tekstregel
  updatetext fr_XSLoverzicht.XSLtekst @@ptrXSL null 0 @nLine 
  fetch next from deCursor into @volgnr,@tekstNr,@tekstregel
end
close deCursor
deallocate deCursor